package cn.vehicle.service;

import cn.vehicle.domains.entity.SysRolePermissionEntity;

import java.util.List;

/**
 * 角色权限关系服务接口
 * <p>
 * 定义角色与权限之间关联关系的核心业务操作。
 * 该接口作为业务层与持久层之间的抽象层，用于维护角色权限映射关系。
 * </p>
 *
 * <p>主要职责：</p>
 * <ul>
 *   <li>提供角色与权限的绑定与解绑方法；</li>
 *   <li>支持批量插入角色权限关系；</li>
 *   <li>确保角色权限操作的一致性与原子性。</li>
 * </ul>
 */
public interface SysRolePermissionService {
    /**
     * 新增或更新角色权限关系
     * <p>删除指定角色的旧权限记录，并批量插入新的权限关联。</p>
     *
     * @param roleId 角色主键ID
     * @param list 角色权限关系列表
     */
    // 定义角色权限绑定的核心方法，由实现类负责落库与事务控制
    void addRolePermissions(Long roleId, List<SysRolePermissionEntity> list);
}
